package sige

class Pagamento {

    static constraints = {
        valor blank: false
        dataDeVencimento nullable: false
        caixaDiario nullable: true
        valor scale:2
        multa scale:2
        desconto scale:2
        total scale:2
        usuario nullable: true
        dataDePagamento nullable: true
    }
    
    static belongsTo = [
        movimentacao: MovimentacaoFinanceira
    ]
    
    CaixaDiario caixaDiario
    Usuario usuario
    Date dataDeVencimento
    Date dataDePagamento
    double valor
    double multa
    double desconto
    double total
    boolean pago
    
    def pagar( ){
        pago = true
        total = valor + multa - desconto
    }
    
    boolean atrasado(){
        return (!pago && dataDePagamento < (new Date()).clearTime() )
    }
}
